package com.tan.kotlintest.retrofit

import android.view.View
import com.tan.kotlintest.R
import com.tan.kotlintest.base.BaseActivity
import com.tan.kotlintest.util.LogUtil
import okhttp3.OkHttpClient
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory


/*
 * Copyright (C) 2018 重庆一聊高科技有限公司
 * 版权所有
 *
 * 功能描述：测试Retrofit网络请求框架
 * 作者：txj
 * 创建时间：2019/2/18
 *
 * 修改人：
 * 修改描述：
 * 修改日期
 */
class TestRetrofitActivity : BaseActivity() {

    override fun getContentView(): View? {
        return inflate(R.layout.activity_test_retrofit_layout)
    }

    override fun onContentAdded() {
        setTitleText("测试Retrofit网络请求框架")
        request()
    }

    private fun request() {
        val client = OkHttpClient.Builder().build()
        //步骤4:创建Retrofit对象
        val retrofit = Retrofit.Builder()
                .baseUrl("http://fy.iciba.com/") // 设置 网络请求 Url
                .addConverterFactory(GsonConverterFactory.create()) //设置使用Gson解析(记得加入依赖)
                .build()

        // 步骤5:创建 网络请求接口 的实例
        val request = retrofit.create(GetRequestInterface::class.java)

        //对 发送请求 进行封装
        val call = request.getCall()
        //call.request().tag(TestRetrofitActivity::javaClass)

        //步骤6:发送网络请求(异步)
        call.enqueue(object : Callback<Translation> {
            override fun onFailure(call: Call<Translation>?, t: Throwable?) {
                LogUtil.i("请求失败")
            }

            override fun onResponse(call: Call<Translation>?, response: Response<Translation>?) {
                LogUtil.i("请求成功: " + response?.body()?.show())
            }

        })
    }

}